package com.klm.easymq.service.impl;

import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;

/**
 * RocketMQ消息消费者服务实现
 * 监听默认主题的消息
 */
@Slf4j
@Service
@RocketMQMessageListener(
    topic = "easy-mq-topic",
    consumerGroup = "easy-mq-consumer-group"
)
public class RocketMQConsumerServiceImpl implements RocketMQListener<String> {
    
    @Override
    public void onMessage(String message) {
        try {
            log.info("收到消息: {}", message);
            // 这里可以添加具体的消息处理逻辑
            // 例如：解析消息、执行业务逻辑、存储到数据库等
            
            // 模拟消息处理
            processMessage(message);
            
        } catch (Exception e) {
            log.error("消息处理失败: {}", message, e);
            // 这里可以添加重试逻辑或死信队列处理
        }
    }
    
    /**
     * 处理消息的具体业务逻辑
     * @param message 消息内容
     */
    private void processMessage(String message) {
        log.info("开始处理消息: {}", message);
        
        // 这里可以添加具体的业务逻辑
        // 例如：
        // 1. 解析JSON消息
        // 2. 调用业务服务
        // 3. 更新数据库
        // 4. 发送通知等
        
        log.info("消息处理完成: {}", message);
    }
} 